آموزش نوشتن کد تمیز - ۲۰ بوی بد کد رایج و نحوه اجتناب از آن‌ها [ویدیو] - آخرین آپدیت

دانلود Writing Clean Code - 20 Common Code Smells and How to Avoid Them  [Video]

نکته: ممکن هست محتوای این صفحه بروز نباشد ولی دانلود دوره آخرین آپدیت می باشد.
نمونه ویدیوها:
توضیحات دوره: کدهای بد منجر به باگ، کاهش سرعت توسعه و افزایش هزینه‌های نگهداری می‌شوند. این دوره به شما می‌آموزد چگونه ۲۰ بوی بد کد (Code Smells) رایج که بر کیفیت نرم‌افزار تأثیر می‌گذارند را شناسایی و بازنویسی (Refactor) کنید. شما با اصول کلیدی طراحی، از جمله SOLID شروع خواهید کرد و سپس موضوعاتی مانند لیست‌های طولانی پارامترها، وسواس در استفاده از انواع اولیه (Primitive Obsession) و کدهای تکراری را بررسی می‌کنید. از طریق مثال‌های واقعی، خواهید دید که چگونه طراحی ضعیف باعث پیچیدگی می‌شود و چگونه می‌توان برای ساختار و وضوح بهتر، کد را بازنویسی کرد. در ادامه مسیر، با مسائل عمیق‌تری مانند Shotgun Surgery، حسادت به ویژگی‌ها (Feature Envy) و رابط‌های متورم (Bloated Interfaces) مقابله خواهید کرد. این دوره استراتژی‌های بهبود کپسوله‌سازی، کاهش وابستگی‌ها و ارتقای خوانایی کد را پوشش می‌دهد. با به‌کارگیری بهترین روش‌ها، کدهای ناکارآمد و سخت‌نگهداری را به راهکارهای مقیاس‌پذیر و باکیفیت تبدیل می‌کنید. در پایان، قادر خواهید بود بوی بد کد را پیش از آنکه باعث مشکلات بزرگ شوند، شناسایی و برطرف کنید. چه در حال نگهداری از کدهای قدیمی باشید و چه در حال نوشتن نرم‌افزارهای جدید، این دوره تکنیک‌های عملی برای بهبود ساختار کد، کاهش بدهی فنی (Technical Debt) و ساخت اپلیکیشن‌های بهتر را به شما ارائه می‌دهد. شناسایی و رفع ۲۰ بوی بد کد رایج در پروژه‌های نرم‌افزاری بهبود خوانایی، قابلیت نگهداری و مقیاس‌پذیری کد به‌کارگیری اصول SOLID برای طراحی بهتر نرم‌افزار بازنویسی ساختارهای کد ناکارآمد و بیش از حد پیچیده کاهش بدهی فنی با نوشتن کدهای تمیزتر و بهینه‌تر ارتقای ماژولار بودن و قابلیت استفاده مجدد در توسعه نرم‌افزار این دوره برای توسعه‌دهندگان نرم‌افزار، مهندسان و متخصصین برنامه‌نویسی که به دنبال ارتقای کیفیت و قابلیت نگهداری کد هستند، ایده‌آل است. داشتن درک پایه از مفاهیم برنامه‌نویسی و طراحی شی‌گرا توصیه می‌شود، اما هیچ تجربه قبلی در زمینه Code Smells یا Refactoring مورد نیاز نیست. شناسایی و بازنویسی ۲۰ بوی بد کد برای دستیابی به کدهای تمیز و قابل نگهداری * کاربرد عملی اصول SOLID برای بهبود طراحی و خوانایی نرم‌افزار * مثال‌های کدنویسی واقعی برای نمایش تکنیک‌های موثر بازنویسی (Refactoring)

سرفصل ها و درس ها

شروع دوره Getting Started with the Course

  • خوش‌آمدگویی و معرفی Welcome and Introduction!

مبانی طراحی نرم‌افزار و اصول SOLID Software Design Fundamentals and SOLID Principles

  • اصول کلیدی طراحی موثر نرم‌افزار Key Principles of Effective Software Design

  • نوشتن ماژول‌های عمیق و با ساختار مناسب Writing Deep, Well-Structured Modules

  • اصول SOLID: اصل تک مسئولیتی (SRP) SOLID Principles: The Single Responsibility Principle

  • اصول SOLID: اصل باز-بسته (OCP) SOLID Principles: The Open/Closed Principle

  • اصول SOLID: اصل جایگزینی لیسکوف (LSP) SOLID Principles: The Liskov Substitution Principle

  • اصول SOLID: اصل تفکیک رابط‌ها (ISP) SOLID Principles: The Interface Segregation Principle

  • اصول SOLID: اصل وارونگی وابستگی (DIP) SOLID Principles: The Dependency Inversion Principle

درک و پیمایش در کدبیس Understanding and Navigating the Code Base

  • پیمایش و درک کدبیس Navigating and Understanding the Code Base

سوییچ‌های تکراری (Repeated Switches) Repeated Switches

  • سوییچ‌های تکراری چیستند؟ What Are Repeated Switches?

  • شناسایی دستورات سوییچ تکراری در کد Identifying Repeated Switch Statements in Code

  • بازنویسی و بهبود دستورات سوییچ Refactoring and Improving Switch Statements

وسواس در استفاده از انواع اولیه (Primitive Obsession) Primitive Obsession

  • وسواس در انواع اولیه (Primitive Obsession) چیست؟ What Is Primitive Obsession?

  • شناسایی استفاده بیش از حد از انواع اولیه در کد Identifying Overuse of Primitives in Code

  • بازنویسی وسواس انواع اولیه برای انتزاع بهتر Refactoring Primitive Obsession for Better Abstraction

حلقه‌ها (Loops) Loops

  • حلقه‌های ناکارآمد چیستند؟ What Are Inefficient Loops?

  • بوی بد رایج در حلقه‌ها و دام‌های آن‌ها Common Loop Code Smells and Their Pitfalls

  • بازنویسی حلقه‌ها Refactoring Loops

لیست طولانی پارامترها Long Parameter List

  • لیست‌های طولانی پارامتر چیستند؟ What Are Long Parameter Lists?

  • شناسایی لیست‌های طولانی پارامتر در کد Identifying Long Parameter Lists in Code

  • کاهش و ساده‌سازی پارامترها Reducing and Simplifying Parameters

تکرار دانش (Knowledge Duplication) Knowledge Duplication

  • تکرار دانش (Knowledge Duplication) چیست؟ What Is Knowledge Duplication?

  • شناسایی دانش تکراری و پیامدهای آن Identifying Repeated Knowledge and Its Consequences

  • حذف افزونگی برای کد قابل نگهداری‌تر Eliminating Redundancy for More Maintainable Code

کامنت‌های غیرمفید Uninformative Comments

  • کامنت‌های غیرمفید چیستند؟ What Are Uninformative Comments?

  • شناسایی بوی بد کامنت‌ها در کدبیس Identifying Comment Code Smells in a Codebase

  • نوشتن کامنت‌های معنادار و حذف موارد زائد Writing Meaningful Comments and Removing Redundant Ones

جراحی شاتگان (Shotgun Surgery) Shotgun Surgery

  • جراحی شاتگان (Shotgun Surgery) چیست؟ What Is Shotgun Surgery?

  • شناسایی کدهایی که نیاز به تغییرات پراکنده دارند Identifying Code That Requires Scattered Changes

  • بازنویسی برای کاهش جراحی شاتگان Refactoring to Reduce Shotgun Surgery

کلاس‌های جایگزین با رابط‌های متفاوت Alternative Classes with Different Interfaces

  • کلاس‌های جایگزین با رابط‌های ناسازگار چیستند؟ What Are Alternative Classes with Inconsistent Interfaces?

  • شناسایی مشکلات طراحی کلاس در کد Identifying Class Design Issues in Code

  • بازنویسی برای تضمین رابط‌های سازگار Refactoring to Ensure Consistent Interfaces

میراث رد شده (Refused Bequest) Refused Bequest

  • میراث رد شده (Refused Bequest) چیست؟ What Is Refused Bequest?

  • شناسایی استفاده نادرست از وراثت در کد Identifying Misuse of Inheritance in Code

  • بازنویسی برای بهبود وراثت در کد Refactoring to Improve Code Inheritance

تجمعات داده‌ای (Data Clumps) Data Clumps

  • تجمعات داده‌ای (Data Clumps) چیستند؟ What Are Data Clumps?

  • شناسایی داده‌های با ساختار ضعیف در کد Identifying Poorly Structured Data in Code

  • بازنویسی تجمعات داده‌ای برای قابلیت نگهداری بهتر Refactoring Data Clumps for Better Maintainability

واسطه (Middle Man) Middle-Man

  • بوی بد کد واسطه (Middle Man) چیست؟ What Is the Middle-Man Code Smell?

  • شناسایی انتزاع‌های غیرضروری در کد Identifying Unnecessary Abstractions in Code

  • ساده‌سازی کد با حذف کلاس‌های واسطه Simplifying Code by Removing Middle-Man Classes

داده‌های تغییرپذیر (Mutable Data) Mutable Data

  • داده‌های تغییرپذیر (Mutable Data) چیستند؟ What Is Mutable Data?

  • شناسایی وضعیت‌های تغییرپذیر و دام‌های آن‌ها Identifying Mutable State and Its Pitfalls

  • پیاده‌سازی رویکردهای ایمن‌تر برای مدیریت داده‌ها Implementing Safer Approaches to Data Management

حسادت به ویژگی (Feature Envy) Feature Envy

  • حسادت به ویژگی (Feature Envy) چیست؟ What Is Feature Envy?

  • شناسایی مرزهای ضعیف اشیا در کد Identifying Poor Object Boundaries in Code

  • بازنویسی برای کاهش حسادت به ویژگی Refactoring to Reduce Feature Envy

تغییر واگرا (Divergent Change) Divergent Change

  • تغییر واگرا (Divergent Change) چیست؟ What Is Divergent Change?

  • شناسایی کدهایی که نیاز به تغییرات مکرر دارند Identifying Code That Requires Frequent Modifications

  • بازنویسی برای کاهش تغییر واگرا Refactoring to Reduce Divergent Change

رابط‌های بزرگ (Large Interfaces) Large Interfaces

  • رابط‌های بزرگ (Large Interfaces) چیستند؟ What Are Large Interfaces?

  • شناسایی رابط‌های متورم در کد Identifying Bloated Interfaces in Code

  • بازنویسی برای کاهش پیچیدگی رابط Refactoring to Reduce Interface Complexity

چندمنظوره ها (Multitaskers) Multitaskers

  • چندمنظوره ها (Multitaskers) چیستند؟ What Are Multitaskers?

  • شناسایی کلاس‌ها و توابع بیش از حد بارگذاری شده Identifying Overloaded Classes and Functions

  • بازنویسی برای بهبود اصل تک مسئولیتی Refactoring to Improve Single Responsibility

نام‌های نامشخص یا گیج‌کننده Unclear / Confusing Names

  • نام‌های نامشخص و گیج‌کننده چیستند؟ What Are Unclear and Confusing Names?

  • شناسایی نام‌گذاری‌های نامشخص در کد Identifying Unclear Naming in Code

  • استراتژی‌های نوشتن نام‌های بصری و خود-توضیح‌دهنده Strategies for Writing Intuitive and Self-Explanatory Names

تعمیم حدسی (Speculative Generality) Speculative Generality

  • تعمیم حدسی (Speculative Generality) چیست؟ What Is Speculative Generality?

  • شناسایی کدهای بیش از حد مهندسی شده (Over Engineered) Identifying Over-Engineered Code

  • ساده‌سازی کد با حذف تعمیم‌های غیرضروری Simplifying Code by Removing Unnecessary Generalization

استثناهای غیرضروری Unnecessary Exceptions

  • استثناهای غیرضروری چیستند؟ What Are Unnecessary Exceptions?

  • شناسایی استفاده بیش از حد از Exceptionها در کد Identifying Overuse of Exceptions in Code

  • بازنویسی برای ساده‌سازی مدیریت استثناها Refactoring to Simplify Exception Handling

ماژول‌های کم‌عمق Shallow Modules

  • ماژول‌های کم‌عمق چیستند؟ What Are Shallow Modules?

  • شناسایی ماژول‌هایی با کپسوله‌سازی ضعیف Identifying Weakly Encapsulated Modules

  • بهبود عمق ماژول برای قابلیت استفاده مجدد بهتر Improving Module Depth for Better Reusability

نکات پایانی و جمع‌بندی دوره Final Thoughts and Course Wrap-Up

  • جمع‌بندی دوره و نکات پایانی Course Wrap-Up and Final Thoughts

نمایش نظرات

آموزش نوشتن کد تمیز - ۲۰ بوی بد کد رایج و نحوه اجتناب از آن‌ها [ویدیو]
جزییات دوره
5h 59m
70
Packtpub Packtpub
(آخرین آپدیت)
از 5
ندارد
دارد
دارد
LM Academy
جهت دریافت آخرین اخبار و آپدیت ها در کانال تلگرام عضو شوید.

Google Chrome Browser

Internet Download Manager

Pot Player

Winrar

LM Academy LM Academy

Lauro Fialho Müller آکادمی LM یک مهندس DevOps و Cloud باتجربه با تخصص عمیق در AWS، خطوط لوله CI/CD، Kubernetes، و پس‌زمینه وسیعی در چندین زبان برنامه‌نویسی است. او که در حال حاضر مشاور ارشد زیرساخت در Thoughtworks است، علاقه زیادی به محاسبات ابری، طراحی سیستم‌ها، FinOps و هوش مصنوعی دارد. Lauro که به دلیل تعهدش به اشتراک دانش شناخته شده است، فعالانه به رشد و موفقیت توسعه دهندگان همکار کمک می کند و آنها را در توسعه شخصی و حرفه ای در جامعه فناوری راهنمایی می کند.